package com.deyuanyun.pic.pig.mapper;

import java.util.List;
import java.util.Map;

import com.deyuanyun.pic.pig.controller.query.QueryTaskPointVO;
import com.deyuanyun.pic.pig.controller.vo.PigTaskPointVO;
import com.deyuanyun.pic.pig.controller.vo.PigTaskVO;
import com.deyuanyun.pic.pig.controller.vo.TrackPointVO;
import com.deyuanyun.pic.pig.domain.EvluationVO;
import com.deyuanyun.pic.pig.controller.query.QueryListVO;
import com.deyuanyun.pic.settings.controller.pipe.vo.PipeLocationDTO;
import com.deyuanyun.pic.settings.controller.pipe.vo.PipePositionDTO;
import com.deyuanyun.pic.settings.domain.base.Attachment;
import com.deyuanyun.pic.settings.domain.pipe.PipeSegment;
import org.apache.ibatis.annotations.Param;

public interface PigTaskMapper {
	/**
	 * 得到清管任务列表
	 * @param taskVo
	 * @return
     */
	List<PigTaskVO> queryPigTask(QueryListVO taskVo);

	/**
	 * 通过Id查询清管任务数据库信息（单表）
	 * @param taskId
	 * @return
     */
	PigTaskVO selectByPrimaryKey(@Param("taskId") String taskId);
	/**
	 * 更新属性不为空的清管任务
	 * @param record
	 * @return
     */
	int updateByPrimaryKeySelective(PigTaskVO record);

	/**
	 * 根据起止位置绝对距离得到mark点
	 * @param beginMile endMile
	 * @return
	 */
	List<TrackPointVO> getMarkPoint(QueryListVO taskVo);

	/**
	 * 根据Id得到跟踪点信息
	 * @param id
	 * @return
	 */
	TrackPointVO queryTrackPointById(String id);

	/**
	 * 根据起止点位置Id查询收发球(清管管理)
	 * @param lineId
	 * @return
     */
	Map<String,Object> queryPigByValRoomId(@Param("lineId") String lineId, @Param("pigValId") String pigValId);

	/**
	 * 保存属性不为空的清管任务
	 * @param record
	 * @return
     */
	int insertSelective(PigTaskVO record);

	/**
	 * 根据任务名称得到任务
	 * @param map
	 * @return
     */
	PigTaskVO getPigTaskByName(Map<String, Object> map);

	/**
	 * 插入收发球信息
	 * @param sendMap
     */
	void insertBall(Map<String, Object> sendMap);

	/**
	 * 更新收发球筒结果记录
	 * @param sendMap
     */
	void updateBall(Map<String, Object> sendMap);

	/**
	 * 得到清管工具
	 * @return
     */
	List<Map<String,Object>> getCleanTool();

	/**
	 * 通过跟踪点通过记录Id或任务Id得到清管任务所选跟踪点
	 * @param
	 * @return
     */
	List<PigTaskPointVO> queryTaskPointRecord(QueryTaskPointVO point);

	/**
	 * 得到管道清管总量数据
	 * @param map
	 * @return
     */
	EvluationVO getHeadValue(Map<String, Object> map);

	/**
	 * 得到图表数据
	 * @param map
	 * @return
     */
	List<EvluationVO> getListValue(Map<String, Object> map);

	/**
	 * 根据管道ID和管段名称得到起点终点都有收发球筒的管段以及其对应的收发球筒
	 * @param
	 * @return
	 */
	List<Map<String,Object>> querySegmentByLineId(Map<String,Object> map);


}